home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Technology Seed / Jan. '98 ATS.toast / QuickTime™ 3.0b11 / QTPublicInterfaces / CIncludes / Displays.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-12  |  25.8 KB  |  700 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Displays.h
  3.  
  4.      Contains:    Display Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    QuickTime 3.0 Beta
  8.  
  9.      Copyright:    © 1993-1997 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __DISPLAYS__
  19. #define __DISPLAYS__
  20.  
  21. #ifndef __CONDITIONALMACROS__
  22. #include <ConditionalMacros.h>
  23. #endif
  24. #ifndef __COMPONENTS__
  25. #include <Components.h>
  26. #endif
  27. #ifndef __VIDEO__
  28. #include <Video.h>
  29. #endif
  30.  
  31. #ifndef __APPLEEVENTS__
  32. #include <AppleEvents.h>
  33. #endif
  34. #ifndef __EVENTS__
  35. #include <Events.h>
  36. #endif
  37. #ifndef __PROCESSES__
  38. #include <Processes.h>
  39. #endif
  40. #ifndef __DIALOGS__
  41. #include <Dialogs.h>
  42. #endif
  43.  
  44.  
  45. #if PRAGMA_ONCE
  46. #pragma once
  47. #endif
  48.  
  49. #ifdef __cplusplus
  50. extern "C" {
  51. #endif
  52.  
  53. #if PRAGMA_IMPORT
  54. #pragma import on
  55. #endif
  56.  
  57. #if PRAGMA_STRUCT_ALIGN
  58.     #pragma options align=mac68k
  59. #elif PRAGMA_STRUCT_PACKPUSH
  60.     #pragma pack(push, 2)
  61. #elif PRAGMA_STRUCT_PACK
  62.     #pragma pack(2)
  63. #endif
  64.  
  65. #ifndef FOR_GLUE_LIB
  66. #define FOR_GLUE_LIB 0
  67. #endif  /*  ! defined(FOR_GLUE_LIB)  */
  68.  
  69.  
  70. enum {
  71.                                                                 /* AppleEvents Core Suite */
  72.     kAESystemConfigNotice        = FOUR_CHAR_CODE('cnfg'),        /* Core Suite types */
  73.     kAEDisplayNotice            = FOUR_CHAR_CODE('dspl'),
  74.     kAEDisplaySummary            = FOUR_CHAR_CODE('dsum'),
  75.     keyDMConfigVersion            = FOUR_CHAR_CODE('dmcv'),
  76.     keyDMConfigFlags            = FOUR_CHAR_CODE('dmcf'),
  77.     keyDMConfigReserved            = FOUR_CHAR_CODE('dmcr'),
  78.     keyDisplayID                = FOUR_CHAR_CODE('dmid'),
  79.     keyDisplayComponent            = FOUR_CHAR_CODE('dmdc'),
  80.     keyDisplayDevice            = FOUR_CHAR_CODE('dmdd'),
  81.     keyDisplayFlags                = FOUR_CHAR_CODE('dmdf'),
  82.     keyDisplayMode                = FOUR_CHAR_CODE('dmdm'),
  83.     keyDisplayModeReserved        = FOUR_CHAR_CODE('dmmr'),
  84.     keyDisplayReserved            = FOUR_CHAR_CODE('dmdr'),
  85.     keyDisplayMirroredId        = FOUR_CHAR_CODE('dmmi'),
  86.     keyDeviceFlags                = FOUR_CHAR_CODE('dddf'),
  87.     keyDeviceDepthMode            = FOUR_CHAR_CODE('dddm'),
  88.     keyDeviceRect                = FOUR_CHAR_CODE('dddr'),
  89.     keyPixMapRect                = FOUR_CHAR_CODE('dpdr'),
  90.     keyPixMapHResolution        = FOUR_CHAR_CODE('dphr'),
  91.     keyPixMapVResolution        = FOUR_CHAR_CODE('dpvr'),
  92.     keyPixMapPixelType            = FOUR_CHAR_CODE('dppt'),
  93.     keyPixMapPixelSize            = FOUR_CHAR_CODE('dpps'),
  94.     keyPixMapCmpCount            = FOUR_CHAR_CODE('dpcc'),
  95.     keyPixMapCmpSize            = FOUR_CHAR_CODE('dpcs'),
  96.     keyPixMapAlignment            = FOUR_CHAR_CODE('dppa'),
  97.     keyPixMapResReserved        = FOUR_CHAR_CODE('dprr'),
  98.     keyPixMapReserved            = FOUR_CHAR_CODE('dppr'),
  99.     keyPixMapColorTableSeed        = FOUR_CHAR_CODE('dpct'),
  100.     keySummaryMenubar            = FOUR_CHAR_CODE('dsmb'),
  101.     keySummaryChanges            = FOUR_CHAR_CODE('dsch'),
  102.     keyDisplayOldConfig            = FOUR_CHAR_CODE('dold'),
  103.     keyDisplayNewConfig            = FOUR_CHAR_CODE('dnew')
  104. };
  105.  
  106.  
  107. enum {
  108.     dmOnlyActiveDisplays        = true,
  109.     dmAllDisplays                = false
  110. };
  111.  
  112.  
  113.  
  114. enum {
  115.                                                                 /* DMSendDependentNotification notifyClass */
  116.     kDependentNotifyClassShowCursor = FOUR_CHAR_CODE('shcr'),    /* When display mgr shows a hidden cursor during an unmirror */
  117.     kDependentNotifyClassDriverOverride = FOUR_CHAR_CODE('ndrv'), /* When a driver is overridden */
  118.     kDependentNotifyClassDisplayMgrOverride = FOUR_CHAR_CODE('dmgr') /* When display manager is upgraded */
  119. };
  120.  
  121.  
  122.  
  123. enum {
  124.                                                                 /* Switch Flags */
  125.     kNoSwitchConfirmBit            = 0,                            /* Flag indicating that there is no need to confirm a switch to this mode */
  126.     kDepthNotAvailableBit        = 1,                            /* Current depth not available in new mode */
  127.     kShowModeBit                = 3,                            /* Show this mode even though it requires a confirm. */
  128.     kModeNotResizeBit            = 4,                            /* Do not use this mode to resize display (for cards that mode drives a different connector). */
  129.     kNeverShowModeBit            = 5                                /* This mode should not be shown in the user interface. */
  130. };
  131.  
  132. /*    Summary Change Flags (sticky bits indicating an operation was performed)
  133.     For example, moving a display then moving it back will still set the kMovedDisplayBit.
  134. */
  135.  
  136. enum {
  137.     kBeginEndConfigureBit        = 0,
  138.     kMovedDisplayBit            = 1,
  139.     kSetMainDisplayBit            = 2,
  140.     kSetDisplayModeBit            = 3,
  141.     kAddDisplayBit                = 4,
  142.     kRemoveDisplayBit            = 5,
  143.     kNewDisplayBit                = 6,
  144.     kDisposeDisplayBit            = 7,
  145.     kEnabledDisplayBit            = 8,
  146.     kDisabledDisplayBit            = 9,
  147.     kMirrorDisplayBit            = 10,
  148.     kUnMirrorDisplayBit            = 11
  149. };
  150.  
  151.  
  152.  
  153. enum {
  154.                                                                 /* Notification Messages for extended call back routines */
  155.     kDMNotifyInstalled            = 1,                            /* At install time */
  156.     kDMNotifyEvent                = 2,                            /* Post change time */
  157.     kDMNotifyRemoved            = 3,                            /* At remove time */
  158.     kDMNotifyPrep                = 4,                            /* Pre change time */
  159.     kDMNotifyExtendEvent        = 5,                            /* Allow registrees to extend apple event before it is sent */
  160.     kDMNotifyDependents            = 6,                            /* Minor notification check without full update */
  161.     kDMNotifySuspendConfigure    = 7,                            /* Temporary end of configuration */
  162.     kDMNotifyResumeConfigure    = 8,                            /* Resume configuration */
  163.                                                                 /* Notification Flags */
  164.     kExtendedNotificationProc    = (1L << 16)
  165. };
  166.  
  167.  
  168. /* types for notifyType */
  169.  
  170. enum {
  171.     kFullNotify                    = 0,                            /* This is the appleevent whole nine yards notify */
  172.     kFullDependencyNotify        = 1                                /* Only sends to those who want to know about interrelated functionality (used for updating UI) */
  173. };
  174.  
  175. /* DisplayID/DeviceID constants */
  176.  
  177. enum {
  178.     kDummyDeviceID                = 0x00FF,                        /* This is the ID of the dummy display, used when the last “real” display is disabled.*/
  179.     kInvalidDisplayID            = 0x0000,                        /* This is the invalid ID*/
  180.     kFirstDisplayID                = 0x0100
  181. };
  182.  
  183.  
  184. enum {
  185.                                                                 /* bits for panelListFlags */
  186.     kAllowDuplicatesBit            = 0
  187. };
  188.  
  189.  
  190. enum {
  191.                                                                 /* bits for nameFlags */
  192.     kSuppressNumberBit            = 0,
  193.     kSuppressNumberMask            = 1,
  194.     kForceNumberBit                = 1,
  195.     kForceNumberMask            = 2,
  196.     kSuppressNameBit            = 2,
  197.     kSuppressNameMask            = 4
  198. };
  199.  
  200.  
  201.  
  202. /* Constants for fidelity checks */
  203.  
  204. enum {
  205.     kNoFidelity                    = 0,
  206.     kMinimumFidelity            = 1,
  207.     kDefaultFidelity            = 500,                            /* I'm just picking a number for Apple default panels and engines*/
  208.     kDefaultManufacturerFidelity = 1000                            /* I'm just picking a number for Manufacturer's panels and engines (overrides apple defaults)*/
  209. };
  210.  
  211.  
  212. enum {
  213.     kAnyPanelType                = 0,                            /* Pass to DMNewEngineList for list of all panels (as opposed to specific types)*/
  214.     kAnyEngineType                = 0,                            /* Pass to DMNewEngineList for list of all engines*/
  215.     kAnyDeviceType                = 0,                            /* Pass to DMNewDeviceList for list of all devices*/
  216.     kAnyPortType                = 0                                /* Pass to DMNewDevicePortList for list of all devices*/
  217. };
  218.  
  219. /* portListFlags for DM_NewDevicePortList */
  220.  
  221. enum {
  222.                                                                 /* Should offline devices be put into the port list (such as dummy display) */
  223.     kPLIncludeOfflineDevicesBit    = 0
  224. };
  225.  
  226.  
  227. /* confirmFlags for DMConfirmConfiguration */
  228.  
  229. enum {
  230.     kForceConfirmBit            = 0,                            /* Force a confirm dialog */
  231.     kForceConfirmMask            = (1 << kForceConfirmBit)
  232. };
  233.  
  234.  
  235. /* Flags for displayModeFlags */
  236.  
  237. enum {
  238.     kDisplayModeListNotPreferredBit = 0,
  239.     kDisplayModeListNotPreferredMask = (1 << kDisplayModeListNotPreferredBit)
  240. };
  241.  
  242.  
  243. /* Flags for itemFlags */
  244.  
  245. enum {
  246.     kComponentListNotPreferredBit = 0,
  247.     kComponentListNotPreferredMask = (1 << kComponentListNotPreferredBit)
  248. };
  249.  
  250.  
  251. typedef unsigned long                     DMFidelityType;
  252. /* AVID is an ID for ports and devices the old DisplayID type
  253.     is carried on for compatibility
  254. */
  255. typedef unsigned long                     AVIDType;
  256. typedef AVIDType                         DisplayIDType;
  257. typedef void *                            DMListType;
  258. typedef unsigned long                     DMListIndexType;
  259. typedef VDPowerStateRec                 AVPowerStateRec;
  260. typedef VDPowerStateRec *                AVPowerStatePtr;
  261.  
  262. struct DMComponentListEntryRec {
  263.     DisplayIDType                     itemID;                        /* DisplayID Manager*/
  264.     Component                         itemComponent;                /* Component Manager*/
  265.     ComponentDescription             itemDescription;            /* We can always construct this if we use something beyond the compontent mgr.*/
  266.  
  267.     ResType                         itemClass;                    /* Class of group to put this panel (eg geometry/color/etc for panels, brightness/contrast for engines, video out/sound/etc for devices)*/
  268.     DMFidelityType                     itemFidelity;                /* How good is this item for the specified search?*/
  269.     ResType                         itemSubClass;                /* Subclass of group to put this panel.  Can use to do sub-grouping (eg volume for volume panel and mute panel)*/
  270.     Point                             itemSort;                    /* Set to 0 - future to sort the items in a sub group.*/
  271.  
  272.     unsigned long                     itemFlags;                    /* Set to 0 (future expansion)*/
  273.     ResType                         itemReserved;                /* What kind of code does the itemReference point to  (right now - kPanelEntryTypeComponentMgr only)*/
  274.     unsigned long                     itemFuture1;                /* Set to 0 (future expansion - probably an alternate code style)*/
  275.     unsigned long                     itemFuture2;                /* Set to 0 (future expansion - probably an alternate code style)*/
  276.     unsigned long                     itemFuture3;                /* Set to 0 (future expansion - probably an alternate code style)*/
  277.     unsigned long                     itemFuture4;                /* Set to 0 (future expansion - probably an alternate code style)*/
  278. };
  279. typedef struct DMComponentListEntryRec    DMComponentListEntryRec;
  280.  
  281. typedef DMComponentListEntryRec *        DMComponentListEntryPtr;
  282. /* ••• Move AVLocationRec to AVComponents.i AFTER AVComponents.i is created*/
  283.  
  284. struct AVLocationRec {
  285.     unsigned long                     locationConstant;            /* Set to 0 (future expansion - probably an alternate code style)*/
  286. };
  287. typedef struct AVLocationRec            AVLocationRec;
  288.  
  289. typedef AVLocationRec *                    AVLocationPtr;
  290.  
  291. struct DMDepthInfoRec {
  292.     VDSwitchInfoPtr                 depthSwitchInfo;            /* This is the switch mode to choose this timing/depth */
  293.     VPBlockPtr                         depthVPBlock;                /* VPBlock (including size, depth and format) */
  294.     UInt32                             depthFlags;                    /* VDVideoParametersInfoRec.csDepthFlags  */
  295.     UInt32                             depthReserved1;                /* Reserved */
  296.     UInt32                             depthReserved2;                /* Reserved */
  297. };
  298. typedef struct DMDepthInfoRec            DMDepthInfoRec;
  299.  
  300. typedef DMDepthInfoRec *                DMDepthInfoPtr;
  301.  
  302. struct DMDepthInfoBlockRec {
  303.     unsigned long                     depthBlockCount;            /* How many depths are there? */
  304.     DMDepthInfoPtr                     depthVPBlock;                /* Array of DMDepthInfoRec */
  305.     unsigned long                     depthBlockFlags;            /* Reserved */
  306.     unsigned long                     depthBlockReserved1;        /* Reserved */
  307.     unsigned long                     depthBlockReserved2;        /* Reserved */
  308. };
  309. typedef struct DMDepthInfoBlockRec        DMDepthInfoBlockRec;
  310.  
  311. typedef DMDepthInfoBlockRec *            DMDepthInfoBlockPtr;
  312.  
  313. struct DMDisplayModeListEntryRec {
  314.     unsigned long                     displayModeFlags;
  315.     VDSwitchInfoPtr                 displayModeSwitchInfo;
  316.     VDResolutionInfoPtr             displayModeResolutionInfo;
  317.     VDTimingInfoPtr                 displayModeTimingInfo;
  318.     DMDepthInfoBlockPtr             displayModeDepthBlockInfo;    /* Information about all the depths*/
  319.     Ptr                             displayModeReserved1;        /* Reserved*/
  320.     StringPtr                         displayModeName;            /* Name of the timing mode*/
  321. };
  322. typedef struct DMDisplayModeListEntryRec DMDisplayModeListEntryRec;
  323.  
  324. typedef DMDisplayModeListEntryRec *        DMDisplayModeListEntryPtr;
  325.  
  326.  
  327. struct DependentNotifyRec {
  328.     ResType                         notifyType;                    /* What type was the engine that made the change (may be zero)*/
  329.     ResType                         notifyClass;                /* What class was the change (eg geometry, color etc)*/
  330.     DisplayIDType                     notifyPortID;                /* Which device was touched (kInvalidDisplayID -> all or none)*/
  331.     ComponentInstance                 notifyComponent;            /* What engine did it (may be 0)?*/
  332.  
  333.     unsigned long                     notifyVersion;                /* Set to 0 (future expansion)*/
  334.     unsigned long                     notifyFlags;                /* Set to 0 (future expansion)*/
  335.     unsigned long                     notifyReserved;                /* Set to 0 (future expansion)*/
  336.     unsigned long                     notifyFuture;                /* Set to 0 (future expansion)*/
  337. };
  338. typedef struct DependentNotifyRec        DependentNotifyRec;
  339.  
  340. typedef DependentNotifyRec *            DependentNotifyPtr;
  341. /* Exports to support Interfaces library containing unused calls */
  342. #if !FOR_GLUE_LIB
  343. #endif  /*  !FOR_GLUE_LIB */
  344.  
  345. typedef CALLBACK_API( void , DMNotificationProcPtr )(AppleEvent *theEvent);
  346. typedef CALLBACK_API( void , DMExtendedNotificationProcPtr )(void *userData, short theMessage, void *notifyData);
  347. typedef CALLBACK_API( void , DMComponentListIteratorProcPtr )(void *userData, DMListIndexType itemIndex, DMComponentListEntryPtr componentInfo);
  348. typedef CALLBACK_API( void , DMDisplayModeListIteratorProcPtr )(void *userData, DMListIndexType itemIndex, DMDisplayModeListEntryPtr displaymodeInfo);
  349. typedef STACK_UPP_TYPE(DMNotificationProcPtr)                     DMNotificationUPP;
  350. typedef STACK_UPP_TYPE(DMExtendedNotificationProcPtr)             DMExtendedNotificationUPP;
  351. typedef STACK_UPP_TYPE(DMComponentListIteratorProcPtr)             DMComponentListIteratorUPP;
  352. typedef STACK_UPP_TYPE(DMDisplayModeListIteratorProcPtr)         DMDisplayModeListIteratorUPP;
  353. enum { uppDMNotificationProcInfo = 0x000000C0 };                 /* pascal no_return_value Func(4_bytes) */
  354. enum { uppDMExtendedNotificationProcInfo = 0x00000EC0 };         /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes) */
  355. enum { uppDMComponentListIteratorProcInfo = 0x00000FC0 };         /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
  356. enum { uppDMDisplayModeListIteratorProcInfo = 0x00000FC0 };     /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
  357. #define NewDMNotificationProc(userRoutine)                         (DMNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMNotificationProcInfo, GetCurrentArchitecture())
  358. #define NewDMExtendedNotificationProc(userRoutine)                 (DMExtendedNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMExtendedNotificationProcInfo, GetCurrentArchitecture())
  359. #define NewDMComponentListIteratorProc(userRoutine)             (DMComponentListIteratorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMComponentListIteratorProcInfo, GetCurrentArchitecture())
  360. #define NewDMDisplayModeListIteratorProc(userRoutine)             (DMDisplayModeListIteratorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMDisplayModeListIteratorProcInfo, GetCurrentArchitecture())
  361. #define CallDMNotificationProc(userRoutine, theEvent)             CALL_ONE_PARAMETER_UPP((userRoutine), uppDMNotificationProcInfo, (theEvent))
  362. #define CallDMExtendedNotificationProc(userRoutine, userData, theMessage, notifyData)  CALL_THREE_PARAMETER_UPP((userRoutine), uppDMExtendedNotificationProcInfo, (userData), (theMessage), (notifyData))
  363. #define CallDMComponentListIteratorProc(userRoutine, userData, itemIndex, componentInfo)  CALL_THREE_PARAMETER_UPP((userRoutine), uppDMComponentListIteratorProcInfo, (userData), (itemIndex), (componentInfo))
  364. #define CallDMDisplayModeListIteratorProc(userRoutine, userData, itemIndex, displaymodeInfo)  CALL_THREE_PARAMETER_UPP((userRoutine), uppDMDisplayModeListIteratorProcInfo, (userData), (itemIndex), (displaymodeInfo))
  365.  
  366. /* Trap interfaces */
  367.  
  368. #if !FOR_GLUE_LIB
  369. EXTERN_API( GDHandle )
  370. DMGetFirstScreenDevice            (Boolean                 activeOnly)                            TWOWORDINLINE(0x7000, 0xABEB);
  371.  
  372. EXTERN_API( GDHandle )
  373. DMGetNextScreenDevice            (GDHandle                 theDevice,
  374.                                  Boolean                 activeOnly)                            TWOWORDINLINE(0x7001, 0xABEB);
  375.  
  376. EXTERN_API( void )
  377. DMDrawDesktopRect                (Rect *                    globalRect)                            TWOWORDINLINE(0x7002, 0xABEB);
  378.  
  379. EXTERN_API( void )
  380. DMDrawDesktopRegion                (RgnHandle                 globalRgn)                            TWOWORDINLINE(0x7003, 0xABEB);
  381.  
  382.  
  383.  
  384. EXTERN_API( OSErr )
  385. DMBeginConfigureDisplays        (Handle *                displayState)                        THREEWORDINLINE(0x303C, 0x0206, 0xABEB);
  386.  
  387. EXTERN_API( OSErr )
  388. DMEndConfigureDisplays            (Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0207, 0xABEB);
  389.  
  390. EXTERN_API( OSErr )
  391. DMAddDisplay                    (GDHandle                 newDevice,
  392.                                  short                     driver,
  393.                                  unsigned long             mode,
  394.                                  unsigned long             reserved,
  395.                                  unsigned long             displayID,
  396.                                  Component                 displayComponent,
  397.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0D08, 0xABEB);
  398.  
  399. EXTERN_API( OSErr )
  400. DMMoveDisplay                    (GDHandle                 moveDevice,
  401.                                  short                     x,
  402.                                  short                     y,
  403.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0609, 0xABEB);
  404.  
  405. EXTERN_API( OSErr )
  406. DMDisableDisplay                (GDHandle                 disableDevice,
  407.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x040A, 0xABEB);
  408.  
  409. EXTERN_API( OSErr )
  410. DMEnableDisplay                    (GDHandle                 enableDevice,
  411.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x040B, 0xABEB);
  412.  
  413. EXTERN_API( OSErr )
  414. DMRemoveDisplay                    (GDHandle                 removeDevice,
  415.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x040C, 0xABEB);
  416.  
  417.  
  418.  
  419.  
  420. EXTERN_API( OSErr )
  421. DMSetMainDisplay                (GDHandle                 newMainDevice,
  422.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0410, 0xABEB);
  423.  
  424. EXTERN_API( OSErr )
  425. DMSetDisplayMode                (GDHandle                 theDevice,
  426.                                  unsigned long             mode,
  427.                                  unsigned long *        depthMode,
  428.                                  unsigned long             reserved,
  429.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0A11, 0xABEB);
  430.  
  431. EXTERN_API( OSErr )
  432. DMCheckDisplayMode                (GDHandle                 theDevice,
  433.                                  unsigned long             mode,
  434.                                  unsigned long             depthMode,
  435.                                  unsigned long *        switchFlags,
  436.                                  unsigned long             reserved,
  437.                                  Boolean *                modeOk)                                THREEWORDINLINE(0x303C, 0x0C12, 0xABEB);
  438.  
  439. EXTERN_API( OSErr )
  440. DMGetDeskRegion                    (RgnHandle *            desktopRegion)                        THREEWORDINLINE(0x303C, 0x0213, 0xABEB);
  441.  
  442. EXTERN_API( OSErr )
  443. DMRegisterNotifyProc            (DMNotificationUPP         notificationProc,
  444.                                  ProcessSerialNumberPtr  whichPSN)                            THREEWORDINLINE(0x303C, 0x0414, 0xABEB);
  445.  
  446. EXTERN_API( OSErr )
  447. DMRemoveNotifyProc                (DMNotificationUPP         notificationProc,
  448.                                  ProcessSerialNumberPtr  whichPSN)                            THREEWORDINLINE(0x303C, 0x0415, 0xABEB);
  449.  
  450.  
  451. EXTERN_API( OSErr )
  452. DMQDIsMirroringCapable            (Boolean *                qdIsMirroringCapable)                THREEWORDINLINE(0x303C, 0x0216, 0xABEB);
  453.  
  454. EXTERN_API( OSErr )
  455. DMCanMirrorNow                    (Boolean *                canMirrorNow)                        THREEWORDINLINE(0x303C, 0x0217, 0xABEB);
  456.  
  457. EXTERN_API( OSErr )
  458. DMIsMirroringOn                    (Boolean *                isMirroringOn)                        THREEWORDINLINE(0x303C, 0x0218, 0xABEB);
  459.  
  460. EXTERN_API( OSErr )
  461. DMMirrorDevices                    (GDHandle                 gD1,
  462.                                  GDHandle                 gD2,
  463.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0619, 0xABEB);
  464.  
  465. EXTERN_API( OSErr )
  466. DMUnmirrorDevice                (GDHandle                 gDevice,
  467.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x041A, 0xABEB);
  468.  
  469. EXTERN_API( OSErr )
  470. DMGetNextMirroredDevice            (GDHandle                 gDevice,
  471.                                  GDHandle *                mirroredDevice)                        THREEWORDINLINE(0x303C, 0x041B, 0xABEB);
  472.  
  473. EXTERN_API( OSErr )
  474. DMBlockMirroring                (void)                                                        TWOWORDINLINE(0x701C, 0xABEB);
  475.  
  476. EXTERN_API( OSErr )
  477. DMUnblockMirroring                (void)                                                        TWOWORDINLINE(0x701D, 0xABEB);
  478.  
  479. EXTERN_API( OSErr )
  480. DMGetDisplayMgrA5World            (Ptr *                    dmA5)                                THREEWORDINLINE(0x303C, 0x021E, 0xABEB);
  481.  
  482. EXTERN_API( OSErr )
  483. DMGetDisplayIDByGDevice            (GDHandle                 displayDevice,
  484.                                  DisplayIDType *        displayID,
  485.                                  Boolean                 failToMain)                            THREEWORDINLINE(0x303C, 0x051F, 0xABEB);
  486.  
  487. EXTERN_API( OSErr )
  488. DMGetGDeviceByDisplayID            (DisplayIDType             displayID,
  489.                                  GDHandle *                displayDevice,
  490.                                  Boolean                 failToMain)                            THREEWORDINLINE(0x303C, 0x0520, 0xABEB);
  491.  
  492. EXTERN_API( OSErr )
  493. DMSetDisplayComponent            (GDHandle                 theDevice,
  494.                                  Component                 displayComponent)                    THREEWORDINLINE(0x303C, 0x0421, 0xABEB);
  495.  
  496. EXTERN_API( OSErr )
  497. DMGetDisplayComponent            (GDHandle                 theDevice,
  498.                                  Component *            displayComponent)                    THREEWORDINLINE(0x303C, 0x0422, 0xABEB);
  499.  
  500. EXTERN_API( OSErr )
  501. DMNewDisplay                    (GDHandle *                newDevice,
  502.                                  short                     driverRefNum,
  503.                                  unsigned long             mode,
  504.                                  unsigned long             reserved,
  505.                                  DisplayIDType             displayID,
  506.                                  Component                 displayComponent,
  507.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0D23, 0xABEB);
  508.  
  509. EXTERN_API( OSErr )
  510. DMDisposeDisplay                (GDHandle                 disposeDevice,
  511.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0424, 0xABEB);
  512.  
  513. EXTERN_API( OSErr )
  514. DMResolveDisplayComponents        (void)                                                        TWOWORDINLINE(0x7025, 0xABEB);
  515.  
  516. #endif  /*  !FOR_GLUE_LIB */
  517.  
  518. EXTERN_API( OSErr )
  519. DMRegisterExtendedNotifyProc    (DMExtendedNotificationUPP  notifyProc,
  520.                                  void *                    notifyUserData,
  521.                                  unsigned short         nofifyOnFlags,
  522.                                  ProcessSerialNumberPtr  whichPSN)                            THREEWORDINLINE(0x303C, 0x07EF, 0xABEB);
  523.  
  524. EXTERN_API( OSErr )
  525. DMRemoveExtendedNotifyProc        (DMExtendedNotificationUPP  notifyProc,
  526.                                  void *                    notifyUserData,
  527.                                  ProcessSerialNumberPtr  whichPSN,
  528.                                  unsigned short         removeFlags)                        THREEWORDINLINE(0x303C, 0x0726, 0xABEB);
  529.  
  530. EXTERN_API( OSErr )
  531. DMNewAVPanelList                (DisplayIDType             displayID,
  532.                                  ResType                 panelType,
  533.                                  DMFidelityType         minimumFidelity,
  534.                                  unsigned long             panelListFlags,
  535.                                  unsigned long             reserved,
  536.                                  DMListIndexType *        thePanelCount,
  537.                                  DMListType *            thePanelList)                        THREEWORDINLINE(0x303C, 0x0C27, 0xABEB);
  538.  
  539. EXTERN_API( OSErr )
  540. DMNewAVEngineList                (DisplayIDType             displayID,
  541.                                  ResType                 engineType,
  542.                                  DMFidelityType         minimumFidelity,
  543.                                  unsigned long             engineListFlags,
  544.                                  unsigned long             reserved,
  545.                                  DMListIndexType *        engineCount,
  546.                                  DMListType *            engineList)                            THREEWORDINLINE(0x303C, 0x0C28, 0xABEB);
  547.  
  548. EXTERN_API( OSErr )
  549. DMNewAVDeviceList                (ResType                 deviceType,
  550.                                  unsigned long             deviceListFlags,
  551.                                  unsigned long             reserved,
  552.                                  DMListIndexType *        deviceCount,
  553.                                  DMListType *            deviceList)                            THREEWORDINLINE(0x303C, 0x0A29, 0xABEB);
  554.  
  555. EXTERN_API( OSErr )
  556. DMNewAVPortListByPortType        (ResType                 subType,
  557.                                  unsigned long             portListFlags,
  558.                                  unsigned long             reserved,
  559.                                  DMListIndexType *        devicePortCount,
  560.                                  DMListType *            theDevicePortList)                    THREEWORDINLINE(0x303C, 0x0A2A, 0xABEB);
  561.  
  562. EXTERN_API( OSErr )
  563. DMGetIndexedComponentFromList    (DMListType             panelList,
  564.                                  DMListIndexType         itemIndex,
  565.                                  unsigned long             reserved,
  566.                                  DMComponentListIteratorUPP  listIterator,
  567.                                  void *                    userData)                            THREEWORDINLINE(0x303C, 0x0A2B, 0xABEB);
  568.  
  569. EXTERN_API( OSErr )
  570. DMDisposeList                    (DMListType             panelList)                            THREEWORDINLINE(0x303C, 0x022C, 0xABEB);
  571.  
  572. EXTERN_API( OSErr )
  573. DMGetNameByAVID                    (AVIDType                 theID,
  574.                                  unsigned long             nameFlags,
  575.                                  Str255                 name)                                THREEWORDINLINE(0x303C, 0x062D, 0xABEB);
  576.  
  577. EXTERN_API( OSErr )
  578. DMNewAVIDByPortComponent        (Component                 thePortComponent,
  579.                                  ResType                 portKind,
  580.                                  unsigned long             reserved,
  581.                                  AVIDType *                newID)                                THREEWORDINLINE(0x303C, 0x082E, 0xABEB);
  582.  
  583. EXTERN_API( OSErr )
  584. DMGetPortComponentByAVID        (DisplayIDType             thePortID,
  585.                                  Component *            thePortComponent,
  586.                                  ComponentDescription *    theDesciption,
  587.                                  ResType *                thePortKind)                        THREEWORDINLINE(0x303C, 0x082F, 0xABEB);
  588.  
  589. EXTERN_API( OSErr )
  590. DMSendDependentNotification        (ResType                 notifyType,
  591.                                  ResType                 notifyClass,
  592.                                  AVIDType                 displayID,
  593.                                  ComponentInstance         notifyComponent)                    THREEWORDINLINE(0x303C, 0x0830, 0xABEB);
  594.  
  595. EXTERN_API( OSErr )
  596. DMDisposeAVComponent            (Component                 theAVComponent)                        THREEWORDINLINE(0x303C, 0x0231, 0xABEB);
  597.  
  598. EXTERN_API( OSErr )
  599. DMSaveScreenPrefs                (unsigned long             reserved1,
  600.                                  unsigned long             saveFlags,
  601.                                  unsigned long             reserved2)                            THREEWORDINLINE(0x303C, 0x0632, 0xABEB);
  602.  
  603. EXTERN_API( OSErr )
  604. DMNewAVIDByDeviceComponent        (Component                 theDeviceComponent,
  605.                                  ResType                 portKind,
  606.                                  unsigned long             reserved,
  607.                                  DisplayIDType *        newID)                                THREEWORDINLINE(0x303C, 0x0833, 0xABEB);
  608.  
  609. EXTERN_API( OSErr )
  610. DMNewAVPortListByDeviceAVID        (AVIDType                 theID,
  611.                                  DMFidelityType         minimumFidelity,
  612.                                  unsigned long             portListFlags,
  613.                                  unsigned long             reserved,
  614.                                  DMListIndexType *        devicePortCount,
  615.                                  DMListType *            theDevicePortList)                    THREEWORDINLINE(0x303C, 0x0C34, 0xABEB);
  616.  
  617. EXTERN_API( OSErr )
  618. DMGetDeviceComponentByAVID        (AVIDType                 theDeviceID,
  619.                                  Component *            theDeviceComponent,
  620.                                  ComponentDescription *    theDesciption,
  621.                                  ResType *                theDeviceKind)                        THREEWORDINLINE(0x303C, 0x0835, 0xABEB);
  622.  
  623. EXTERN_API( OSErr )
  624. DMNewDisplayModeList            (DisplayIDType             displayID,
  625.                                  unsigned long             modeListFlags,
  626.                                  unsigned long             reserved,
  627.                                  DMListIndexType *        thePanelCount,
  628.                                  DMListType *            thePanelList)                        THREEWORDINLINE(0x303C, 0x0A36, 0xABEB);
  629.  
  630. EXTERN_API( OSErr )
  631. DMGetIndexedDisplayModeFromList    (DMListType             panelList,
  632.                                  DMListIndexType         itemIndex,
  633.                                  unsigned long             reserved,
  634.                                  DMDisplayModeListIteratorUPP  listIterator,
  635.                                  void *                    userData)                            THREEWORDINLINE(0x303C, 0x0A37, 0xABEB);
  636.  
  637. EXTERN_API( OSErr )
  638. DMGetGraphicInfoByAVID            (AVIDType                 theID,
  639.                                  PicHandle *            theAVPcit,
  640.                                  Handle *                theAVIconSuite,
  641.                                  AVLocationRec *        theAVLocation)                        THREEWORDINLINE(0x303C, 0x0838, 0xABEB);
  642.  
  643. EXTERN_API( OSErr )
  644. DMGetAVPowerState                (AVIDType                 theID,
  645.                                  AVPowerStatePtr         getPowerState,
  646.                                  unsigned long             reserved1)                            THREEWORDINLINE(0x303C, 0x0839, 0xABEB);
  647.  
  648. EXTERN_API( OSErr )
  649. DMSetAVPowerState                (AVIDType                 theID,
  650.                                  AVPowerStatePtr         setPowerState,
  651.                                  unsigned long             powerFlags,
  652.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x083A, 0xABEB);
  653.  
  654. EXTERN_API( OSErr )
  655. DMGetDeviceAVIDByPortAVID        (AVIDType                 portAVID,
  656.                                  AVIDType *                deviceAVID)                            THREEWORDINLINE(0x303C, 0x043B, 0xABEB);
  657.  
  658. EXTERN_API( OSErr )
  659. DMGetEnableByAVID                (AVIDType                 theAVID,
  660.                                  Boolean *                isAVIDEnabledNow,
  661.                                  Boolean *                canChangeEnableNow)                    THREEWORDINLINE(0x303C, 0x063C, 0xABEB);
  662.  
  663. EXTERN_API( OSErr )
  664. DMSetEnableByAVID                (AVIDType                 theAVID,
  665.                                  Boolean                 doEnable,
  666.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x053D, 0xABEB);
  667.  
  668. EXTERN_API( OSErr )
  669. DMGetDisplayMode                (GDHandle                 theDevice,
  670.                                  VDSwitchInfoPtr         switchInfo)                            THREEWORDINLINE(0x303C, 0x043E, 0xABEB);
  671.  
  672. EXTERN_API( OSErr )
  673. DMConfirmConfiguration            (ModalFilterUPP         filterProc,
  674.                                  UInt32                 confirmFlags,
  675.                                  UInt32                 reserved,
  676.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x083F, 0xABEB);
  677.  
  678.  
  679.  
  680. #if PRAGMA_STRUCT_ALIGN
  681.     #pragma options align=reset
  682. #elif PRAGMA_STRUCT_PACKPUSH
  683.     #pragma pack(pop)
  684. #elif PRAGMA_STRUCT_PACK
  685.     #pragma pack()
  686. #endif
  687.  
  688. #ifdef PRAGMA_IMPORT_OFF
  689. #pragma import off
  690. #elif PRAGMA_IMPORT
  691. #pragma import reset
  692. #endif
  693.  
  694. #ifdef __cplusplus
  695. }
  696. #endif
  697.  
  698. #endif /* __DISPLAYS__ */
  699.  
  700.